import request from '@/utils/request'

// 获取员工列表-支持分页 模糊查询 查询部门下的列表
// getEmployeeList({ page, pagesize, keyword, departmentId })
// getEmployeeList({ page: 1, pagesize: 10, keyword, departmentId: 1 })
// getEmployeeList({ page: 3, pagesize: 10, keyword, departmentId: 1 })
// getEmployeeList({ page: 3, pagesize: 10, keyword: '财' })
export function getEmployeeList(params) {
  return request({
    url: '/sys/user',
    params: params,
    responseType: 'json'
    // params: {
    //   page: 1,
    //   pagesize: 10,
    //   keyword: '财',
    //   departmentId: 1
    // }
  })
}

// 获取所有员工数据(不是以 json 格式给我们的) 用于导出 excel
// 大部分接口返回的数据格式都是 json 将来会经过 axios 自动转对象（JSON.parse）
// 这次获取的数据是二进制文件流 =》 axios 要想正常帮你转成功 必须设置一个responseType
export function exportExcel() {
  return request({
    url: '/sys/user/export',
    // 设置响应数据类型
    responseType: 'blob'
  })
}

/**
 * 删除员工
 * **/
export function delEmployee(id) {
  return request({
    method: 'delete',
    url: `/sys/user/${id}`
  })
}

// 获取文件模板（二进制文件流）
export function getFileTemplate() {
  return request({
    url: '/sys/user/import/template',
    responseType: 'blob'
  })
}

// 上传 excel 到后端

/*
  const fd = new FormData()

  fd.append('键名', '')
*/
export function uploadExcel(file) {
  const fd = new FormData()
  fd.append('file', file)

  return request({
    method: 'post',
    url: '/sys/user/import',
    data: fd
    // data: {
    //   file: file
    // }
  })
}

export function addEmployee(data) {
  return request({
    url: '/sys/user',
    method: 'post',
    data
  })
}

/**
 *  获取员工详情
 * **/
export function getEmployeeDetail(id) {
  return request({
    url: `/sys/user/${id}`
  })
}

export function updateEmployee(data) {
  return request({
    url: `/sys/user/${data.id}`,
    method: 'put',
    data
  })
}

// 给员工分配角色 assignRole(1, [1, 2, 3])
export const assignRole = (id, roleIds) => request({
  method: 'put',
  url: '/sys/user/assignRoles',
  data: {
    id,
    roleIds
  }
})
